Active AC power loss detection

ABSTRACT

To reduce the rate at which a false alternating current (“AC”) loss alarming signal is generated, but at the same time detect an actual AC loss situation in a timely manner, the disclosed method describes an AC line power loss detection and active verification method. If the AC line input voltage dips momentarily lower than a standard sine wave amplitude, the AC line may not be considered lost as long as it still has energy to drive a load. The method inserts a momentary load across the AC line and compares the AC line voltage before and after the extra load is applied. If the AC power is present, this extra loading will increase the AC loading current momentarily, but will not affect the AC line voltage. However, if the AC power is lost, such loading will lower the AC line voltage, indicating a loss of power.

TECHNICAL FIELD

The present disclosure relates generally to power distribution and, moreparticularly, to detecting and confirming power loss in a powerdistribution system.

BACKGROUND

With the rapid increase of complexity of computing, communication, andother systems, increasing amounts of power are needed to maintainoperations in many systems. The increased system complexity oftenresults in longer handling operations in the case of system power loss.For example, in a system power loss event, these systems require longerpower hold-up time to properly save operation parameters of thecomponents and/or to engage back up power supplies. The power hold-uptime is the amount of time that the system can continue to run withoutresetting or rebooting during a power interruption.

Higher system power and longer hold-up time requirements put increasingpressures on power supply design. These designs typically require largerenergy storage devices, which translates into higher costs and largerequipment sizes. To resolve this technical challenge, conventionalsystems have attempted to detect the input power loss at the earliestpossible time to allow power loss reaction processes to begin as earlyas possible.

Alternating current (“AC”) voltage changes instantaneous amplitudecontinuously from zero to its positive and negative maximum values insinusoidal cycles. Conventional systems passively detect AC inputvoltage over a time window and, based on the voltage values, determinewhether the AC power is still present or has been lost. When the voltageacross the load drops below a certain level, an AC loss condition isdetected. One disadvantage of this method is that the AC power loss maynot be detected until one or more AC cycles later.

Other conventional methods read an instantaneous AC voltage and comparethe read value against a sampled and delayed version of the data. Stillother conventional methods read instantaneous AC voltage and compare theinstantaneous values over a short period of time T, such as T=1 mS orT=0.5 mS, against standard AC waveform values to determine whether theAC input voltage remains within the range of a standard sine wave, orhas dropped out of the range indicating a loss of AC power. Thisconventional solution creates a conflict between seeking a fast responseto AC power loss when a shorter T is used, and avoiding a false positiveresponse when the system mistakenly considers an AC line glitch as an ACpower loss.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting a system to determine and verify aloss of power in an electrical system, in accordance with certainexample embodiments.

FIG. 2 is a block flow diagram depicting a method to determine andverify a loss of power in an electrical system, in accordance withcertain example embodiments.

FIG. 3 is a block flow diagram depicting a method to generate asynchronized sine wave for comparison to AC line power, in accordancewith certain example embodiments.

FIG. 4 is a block diagram depicting a computing machine and module, inaccordance with certain example embodiments.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

A power distribution system uses an active detection and confirmationmethod to detect an AC power loss condition. The active detection andconfirmation allows AC power loss to be detected and confirmed earlierthan conventional methods. The active confirmation process can reducethe rate of false alarms and provide reliable AC loss detection. Forapplications where input power redundancy is not possible due to cost orspace restrictions, fast and reliable AC power loss detection cansignificantly improve system reliability. When AC power loss occurs,systems can be shut down in a controlled manner to ensure that thesystems can be restored after AC power is recovered.

In example embodiments, the present technology includes circuits thatprovide a signal representing the instantaneous AC line voltage andsuitable to supply the analog to digital converter in a microcontroller.The microcontroller generates a sine wave signal locally andsynchronizes the sine wave to the AC line input. If the input AC poweris normal, the difference between the two signals will be within acertain configured amount, such as 5V or 10V. If the comparisondifference is larger than the configured amount, a possible AC losssituation may be indicated. The system then begins a confirmationprocess before reporting the possible power loss. In a certain example,the sine wave is a digital representation of an analog sine wave. In anexample, the sine wave is a digital simulated sine wave.

Upon detection of a difference greater than the configured amount, themicrocontroller applies a short positive pulse signal to a gate of apower semiconductor device that connects a load resistor across the ACline. The load resistor creates a momentary extra loading on the ACline. If the AC power is still present, the extra loading willmomentarily increase the AC line load current, but will not affect theAC line voltage. However, if the AC line power is lost, the additionalloading will drive the line voltage lower until it approaches zero.Based on the amount of change of the AC line voltage and current, thesystem determines if the power is lost in the AC line and takesappropriate action.

In an additional example, the AC line input frequency is mixed withanother signal to create a heterodyne that allows for faster detectionof an AC power interruption. For example, the AC line input at 60 Hz maybe mixed with a 62 Hz signal to produce a 122 Hz signal. This signal iscompared to a locally generated 122 Hz signal to identify a lineinterruption as described above.

By using and relying on the methods and systems described herein, asystem reduces the rate of false AC loss alarming signals, but at thesame time detects an actual AC loss situation in a timely manner. Assuch, the systems and methods described herein may allow a system to beconstructed with less costly backup power systems or smaller energystorage devices. These systems and methods will reduce costs,unnecessary shutdowns, and power interruptions.

Description

Referring to the drawings, in which like numerals represent like (butnot necessarily identical) elements throughout the figures, exampleembodiments are described.

FIG. 1 is diagram depicting a power system 100 with a microcontroller110 and a load resistor 140, in accordance with certain exampleembodiments.

The system utilizes a microcontroller 110 to monitor the AC line power160, generate a sine wave synchronized to the AC line, detect poweranomalies, and confirm a power loss. The microcontroller 110 may be anymicroprocessor based device that performs the power monitoring tasks.The microcontroller 110 may utilize an AC loss detection andverification module 111, a sine wave generator 112, a pulse load to ACline module 113, and any other modules or elements to perform thedescribed functions. The microcontroller 110 is configured to read anattenuated version of the incoming AC line power voltage 114, frequency,and current, and to monitor these characteristics for power loss orinterruption. The microcontroller 110 is configured to provide an ACloss detection output 115 to any device, person, or system when theprocess determines that the AC power line has lost power. In certainembodiments, the functions of the microcontroller 110 described hereinmay be performed by the microcontroller 110, a module within themicrocontroller 110, or any other suitable device, such as a voltagemeter on the AC line or a control system for the facility power system.

The microcontroller 110 utilizes a sine wave generator 112. The sinewave generator 112 produces a locally generated sine wave that issynchronized to the incoming AC line frequency. For example, if theincoming AC line frequency is 60 Hz, the sine wave generator 112produces a 60 Hz signal that is synchronized with the AC line frequency.To synchronize the frequencies, the sine wave generator 112 generatesthe sine wave such that the zero crossing of the generated sine waveoccurs at the same moment as the zero crossing of the AC line sine waveor at a configured time afterward. Thus, the sine waves will reach peakamplitude, both positive and negative, at substantially the same time orat a configured time difference.

The microcontroller 110 includes an AC loss detection and verificationmodule 111. The detection and verification module 111 monitors theattenuated AC line signal from the attenuation circuits 120, comparesthe AC voltage characteristics to the generated sine wavecharacteristics, identifies power interruptions, initiates theverification process, and performs other steps of the process asdescribed in the method 200 of FIG. 2. Certain functions of thedetection and verification module 111 may be described herein as beingperformed by the microcontroller 110 or other modules of themicrocontroller 110. Conversely, certain functions of themicrocontroller 110 may be described herein as being performed by thedetection and verification module 111.

The microcontroller 110 utilizes a pulse load module 113 to activate thepower transistor 130. The pulse load module 113 receives instructionsfrom the detection and verification module 111 or another function ofthe microcontroller 110 and communicates a signal to the powertransistor 130 to close the gate of the power transistor 130 and tothereby allow power to be supplied to the load resistor 140.

The power transistor 130 is used by the system 100 in the verificationof an AC voltage loss in the system. The power transistor 130 isconfigured to receive a signal from the pulse load module 113 and toclose a gate. The closed gate allows AC power from the system 100 toflow through the load resistor 140. By applying a short positive pulsesignal, such as five microseconds, to the power transistor 130, the loadresistor 140 is connected to the AC line momentarily as an extraloading. If the AC power is still present, this extra loading willincrease the AC line load current, but not affect the AC line voltage,as measured by the microcontroller 110.

When the power transistor 130 is conducting, the load resistor 140introduces a load to the power system. When the load resistor 140 isintroduced into the system at a time that the system is receiving therequired power, the extra loading will momentarily increase the AC lineload current, but not affect the AC line voltage. However, if the ACline power is lost, the additional loading from the load resistor 140will drive the line voltage lower, until it approaches zero. After themomentary power is pulsed to the load resistor 140, the power transistor130 opens and the AC power does not flow to the load resistor 140.

The power supplied by the system is represented in the drawing as thepower connections 150. This AC power may be supplied at any residentialor commercial voltage, such as 120 V or 240 V. The power connections 160represent the logic levels, such as 5 V. For example, the power suppliedby the system to operate machinery, devices, or other elements of thesystem may be supplied at 120 V, but the control of the system asperformed by the microcontroller 110 may operate at logic levels. Thesystem may utilize the AC line input and attenuation circuits 120 toprovide the logic level power 160 to the microcontroller 110. The ACline input and attenuation circuits 120 may include any devices toprovide the power to the microcontroller 110.

In an example system, the smaller the value of the load resistor 140,the higher an amount of power will be used during the execution of themethod 200. Similarly, the shorter the pulse width that is supplied tothe power transistor 130, the lower the amount of power will be usedduring the execution of the method 200. Due to line parasiticalinductance, if the pulse width is not longer than a minimum amount,voltage drop across the load resistor 140 may not be measuredaccurately.

In an example, to determine an acceptable load resistor value and pulsewidth, the types of applications in the power system, the power level ofthe power system, the physical size of the power system, and the circuitlayout and packaging can be considered. These factors, and othersuitable factors, affect the parasitical parameters of the circuit.Therefore, an example method to determine the load resistor value andpulse width can be based on an iterative approach. That is, selecting asmall resistor value and large pulse width with which to start. Thesystem may be tested with these selected values, and the extra loadingcurrent is monitored. The line voltage in the power system should notchange if the resistor value is properly selected. If the line voltagedoes change, then the resistor value is too small and exceeds the linecapability.

For example, for a power system operating at 120V/1 KW, the firstiteration selects a resistor value and pulse width may select a 100 Wresistor and a 1 mS pulse width and determines a voltage reading. Afterobtaining an acceptable measurement value, the method increases theresistor value (that is, decreases the resistor wattage) and decreasesthe pulse width, and obtains a new measurement. For example, in thesecond iteration, the method may select a 50 W resistor and a pulsewidth of 500 uS. If the voltage reading does not change, then the methodmay further reduce the resistor to 25 W and the pulse width to 250 uS.The method of increasing resistor values and decreasing pulse widthscontinues until the voltage reading becomes inaccurate. The inaccuratevoltage readings indicate that circuit parasitical parameters arecausing interferences. At this point, the method returns to an earlieriteration to obtain a preferred parameters setting. Based on theiterations, a preferred resistor value and pulse width are obtained. Inthis manner, the value of the load resistor 140 is sized such that theload is detectable by the microcontroller 110 while the pulse width ofthe power gate 130 is configured to be short enough to avoid excessivepower consumption.

FIG. 2 is a block flow diagram depicting a method 200 to determine andverify if power has been lost in a system, in accordance with certainexample embodiments. The method 200 is described with reference to thecomponents illustrated in FIG. 1.

In block 205, the microcontroller 110 receives the AC line input foranalysis. In certain examples, the microcontroller 110 is configured aspart of a control system for the AC power distribution. Themicrocontroller 110 may be a separate device or system that is added toan existing system. The microcontroller 110 may be embodied a series ofcomputer instructions that are performed by other devices. Any suitablemicrocontroller 110 configuration may be used. The AC power supplied tothe microcontroller 110 may be at the house level voltage, such as 110V, at a logic level voltage, such as 5 V, or at any suitable level. TheAC power may be directly from the power system or the AC power may beconditioned in any other suitable manner.

In block 210, the microcontroller 110 generates a synchronized sine wavefor comparison to the AC line power. The details of block 210 aredescribed in greater detail in the method 210 of FIG. 3.

FIG. 3 is a block diagram depicting a method 210 to generate asynchronized sine wave for comparison to the waveform of AC line power,in accordance with certain example embodiments.

In block 305, the microcontroller 110 determines the frequency of the ACline input. The measurement may be made by any traditional frequencymeter that is a function of the microcontroller 110 or logicallyconnected to the microcontroller 110. For example, the microcontroller110 determines that the AC line input is provided at a frequency of 60Hz.

In block 310, the microcontroller 110 determines if the AC line powershould be heterodyned to a higher frequency. For example, the detectionand verification module 111 may make the determination. The detection ofan AC power loss is dependent upon the amount of time that the sine waveof the power requires to cycle. For example, the power interruption maynot be detectable until the sine wave of the power is above a certainnumber of volts, such as 5 V. If a power interruption happens at a zerocrossing of the sine wave, the system will wait until the sine wave isagain above 5 V before the power interruption is identifiable. Thus, thespeed of detection of the power interruption is dependent on thefrequency of the power.

By creating a faster heterodyne frequency, the detection time for apower interruption may be reduced. If a heterodyne frequency is desiredby the microcontroller 110, then the method 210 proceeds to block 315 tocreate the heterodyne frequency.

In block 315, the microcontroller 110 mixes the AC line input with asecond frequency signal to create a heterodyne frequency signal having ahigher frequency than the AC line input. For example, if a 62 Hz signalis mixed with the 60 Hz AC line signal, two heterodynes are created, 122Hz and 2 Hz. As the 122 Hz signal will cycle more than twice as fast asthe 60 Hz signal, the detection time for a power interruption may bereduced accordingly.

In block 320, the microcontroller 110 filters the heterodyne frequencysignal having a lower frequency than the AC line input. In the example,the 2 Hz signal is filtered out, leaving only the 122 Hz signal. The 2Hz signal is not needed as the response time for a 2 Hz signal would bemuch slower than with the 60 Hz signal or the 122 Hz heterodyne signal.

From block 320, the method 210 proceeds to block 325. Returning to block310, if the heterodyne is not desired by the microcontroller 110, thenthe method 210 proceeds directly to block 325.

In block 325, the microcontroller 110 locally generates a signal with afrequency that is synchronized with the supplied AC line input or theheterodyned AC line input. For example, the sine wave generator 112 maygenerate the signal. That is, if the heterodyne from the example is usedby the microcontroller 110, then a 122 Hz signal is generated forcomparison to the heterodyned AC line input. If the heterodyned signalis not used, but instead the original AC line input signal from theexample is used, then a 60 Hz signal is generated for comparison to theAC line input. The signal is generated such that the sine wave of thetwo signals would match if overlaid upon one another. That is, thesignals would cross the zero crossing at substantially the same time andrise to the peak amplitude at substantially the same time. In practice,a signal that is within 5 V or 10 V throughout the sine wave is desired.The difference between the signals may be compared to a configuredthreshold. The threshold may be the amount of difference between thesignals before a positive result is indicated. This configurabledifference between the two voltages may be dynamically adjusted toprevent false positive results. For example, if a 5 V threshold is usedand false positive results occur at a rate that is unacceptable to theoperators, a power system administrator, an end user, or any othersuitable party, then the configured threshold may be incrementallyincreased, such as to 7 V, until the rate of false positives are belowan acceptable level. In an alternate example, the synchronized wave is aconfigured amount of time behind the AC line input signal or before theAC line input signal. That is, the synchronized wave zero crossing maybe a configured amount of time before or after the AC line input signal.

From block 325, the method 210 returns to block 215 of FIG. 2.

In block 215, the microcontroller 110 compares the AC line voltage160against the generated sine wave. For example, the microcontroller 110obtains the AC line input 160 and the generated sine wave from the sinewave generator 112 for a comparison. For example, the comparison may beperformed by the detection and verification module 111. Themicrocontroller compares the voltage level for each sine wave at aparticular moment in time. If the voltages are substantially the same,such as within a 5 V configured threshold, then the sine waves aredetermined to match. In this example, the threshold is the configureddifference between the two signals before a positive result isindicated. For example, if the configured threshold is 5 V, then if thesine wave voltage indicates 11 V and the AC line input 160 indicates 5V, then the 6 V difference would exceed the configured threshold of 5 V.In another example, the microcontroller 110 determines the time thateach sine wave performs a zero crossing. If the times are substantiallythe same, then the sine waves are determined to match. In the example,the comparison is performed in the detection and verification module111. If the microcontroller 110 configures the sine wave to beincrementally ahead of or behind the AC line input 160, then themicrocontroller 110 compares the two signals with a time delay on theleading signal. The time delay allows the two signals to bemathematically synchronized and compared at a similar time since thelast zero crossing of each.

When the voltage levels do not match, a power interruption is indicated.A difference in the voltages may be caused by a power loss or amomentary interruption. A momentary amplitude interruption (typicallyreferred to as a glitch) can be caused by various actions, such as alarge load being started in the AC line. A determination that thisglitch is an indication that power has been lost in the AC line would bea false positive indication. An actual power loss may be due to thepower supply being powered down, a supply line being severed, or anyother situation that may remove the power supply from the AC line.

In block 220, if the results of the comparison, such as a comparison ofthe voltage levels, are smaller than the configured threshold, then themethod 200 returns to block 215 and the detection and verificationmodule 111 continues to monitor the sine waves. For example, if theinstantaneous voltage level of each sine wave are within 5 V of eachother, then voltages are within the threshold and the method 200 returnsto block 215.

If the results of the comparison are greater than the configuredthreshold, then the method 200 proceeds to block 225 to verify thepotential power loss before a communication is transmitted that thepower is lost in the power system. For example, if the instantaneousvoltage levels of each sine wave are not within 5 V of each other, thenthe method 200 proceeds to block 225 to verify the power interruption.

In block 225, the pulse load module 113 identifies the AC line voltageand closes the gate of the power transistor 130 to provide pulse loadingto the load resistor 140. Before the gate is closed, the microcontroller110 obtains a measure of the AC line voltage for later comparison withthe AC line voltage after the load is applied to the load resistor 140.The AC line voltage before the load is applied may be obtained from anysuitable source, such as a meter in the microcontroller 110 or logicallyconnected to the microcontroller 110. The AC line voltage may berecorded as the peak voltage measured during the AC cycle.

After the microcontroller 110 identifies the AC line voltage, the pulseload module 113 receives instructions from the detection andverification module 111 or another function of the microcontroller 110and communicates a signal to the power transistor 130 to close and allowpower to flow to the load resistor 140.

The power transistor 130 is configured to receive a signal from thepulse load module 113 and close the gate. The power transistor 130 is anon/off switch with the current from the source power system through theload resistor 140 and back to the AC power line controlled by the gate.The closed gate allows AC power from the AC line to flow through theload resistor 140. By applying a short positive pulse signal, such asfive microseconds, to the power transistor 130, the load resistor 140 isconnected to the AC line momentarily as an extra loading. If the ACpower is still present, this extra loading will increase the AC lineload current, but not affect the AC line voltage as seen by themicrocontroller 110. The pulse width of the power transistor 130 can beconfigured to be short enough to avoid excessive power consumption asdescribed previously.

In block 227, the pulse load module 113 communicates a signal to thepower transistor 130 to open and stop power from flowing to the loadresistor 140. The power transistor 130 opens the gate and power is cutoff from the load resistor 140. In this example, the communication tothe power transistor 130 in block 225 instructs the power transistor 130to open the gate, and a separate communication in block 227 instructsthe power transistor 130 to close the gate. In an alternate example, thecommunication to the power transistor 130 in block 225 instructs thepower transistor 130 to pulse the gate open and closed. Any suitablemethod for providing a pulse of power to the load resistor 140 may beused.

In block 230, the microcontroller 110 analyzes the line voltage andcurrent to determine the effect of the load resistor 140 on the system.The load resistor 140 introduces a load to the system when the powertransistor 130 is conducting. When the load resistor 140 is introducedinto the system and is receiving the required power, the extra loadingwill momentarily increase the AC line load current, but not affect theAC line voltage. However, if the AC line power is lost, the additionalloading from the load resistor 140 will drive the line voltage lower,eventually approaching zero. After the momentary power is pulsed to theload resistor 140, the power transistor 130 opens, and the AC power isnot provided to the load resistor 140. After the gate is closed, themicrocontroller 110 obtains a measure of the AC line voltage for thecomparison with the AC line voltage before the load is applied to theload resistor 140. The AC line voltage after the load is applied may beobtained from any suitable source, such as a meter in themicrocontroller 110 or logically connected to the microcontroller 110.The AC line voltage may be recorded as the peak voltage measured duringthe AC cycle.

In block 235, the microcontroller 110 determines if the AC line voltageis within a configured threshold. The threshold may be the minimumvoltage that the AC line voltage should be to determine if the AC poweris lost or not. For example, if a voltage of the AC line input 160 isexpected to be over a threshold of 100 volts, and the AC line input 160is measured at 80 V, then the threshold is not met. The characteristicsof the AC line may be determined by the microcontroller 110, a modulewithin the microcontroller 110, or any other suitable device, such as avoltage meter on the AC line or a control system for the facility powersystem. The microcontroller 110 may also measure the current in the ACline input 160 to monitor the effects of the load resistor 140.

If the AC power is still present in the system, the extra loading fromthe load resistor 140 will momentarily increase the AC line loadcurrent, but not affect the AC line voltage. However, if the AC linepower is lost, the additional loading will drive the line voltage loweruntil it approaches zero after successive applications of the loadresistor. If the AC line power is lost, the microcontroller 110 maydetect a drop in the line voltage that is over a threshold, such as a 10V drop, when the load is applied to the line. For example, if the ACline voltage drop is measured at 20 V, and thus over a 10 V dropthreshold, then the microcontroller 110 would identify the voltage dropas likely being due to an AC power loss. That is, instead of, or inaddition to, configuring the threshold as a minimum voltage, themicroprocessor 110 may receive a configured drop threshold that providesan amount that the voltage may drop after application of the loadresistor 140 to the AC power. For example, if the drop is greater thanthe threshold, then an AC power interruption is indicated.

In another example, the AC line voltage from before the introduction ofthe load resistor 140 is compared to the AC line voltage from after theintroduction of the load resistor 140. That is, if the AC line voltageobtained at block 225 before the gate is closed is 110 V and the AC linevoltage obtained at block 230 after the gate is closed is at 90 V, thenthe addition of the load resistor 140 will be determined to have causeda 20 V drop in the AC line voltage. In another example, the AC linevoltage from after the introduction of the load resistor 140 is comparedto a threshold. The threshold may be the minimum amount of peak voltagefor the AC line. For example, if the AC line voltage is normally 110 V,then the threshold may be configured to be 90 V. Any reading below 90 Vin the example would be determined to be below the threshold.

In another example, the microcontroller 110 may detect that the ACvoltage is dropping at a certain rate greater than a configured ratewhile the load is applied. The rate that the voltage is dropping may beidentified as an indication that the AC power is lost. In anotherexample, the microcontroller 110 may detect that the measured AC currentis below a configured AC current threshold while the load is applied.Any other appropriate characteristic of the AC line power may beanalyzed to determine if the AC power is lost when the load is applied.

Based on the results of the analysis of the momentary load on thesystem, the method 200 proceeds to block 240 if the AC line voltage isabove the threshold or otherwise within an expected range.

In block 240, a counter is set to zero. The counter is used by themicrocontroller 110 to perform multiple verifications before adetermination is made that the power is lost in the AC line. In anexample, because of the serious effect of initiating a shutdown based ona false positive result, the microcontroller 110 requires a configurednumber of positive results before determining that the AC line power islost. The counter is utilized to count the number of positive resultsthat have been recorded.

The number of positive results is represented by the letter “C”. Forexample, if one positive result has been recorded, then C=1. If threepositive results have been recorded, then C=3. In block 240, the counteris reset to zero because the latest result indicated that the AC powerwas not lost.

From block 240, the method 200 returns to block 215 to compare voltagesto identify another potential power interruption in the AC line.

Returning to block 235, based on the results of the analysis of themomentary load on the system, the method 200 proceeds to block 245 ifthe AC line voltage or current is below the threshold or otherwiseoutside of an acceptable range, as described previously.

In block 245, the microcontroller 110 determines if the counter C isequal to a threshold. The threshold may represent a minimum number ofpositive indications of AC power loss. The desired minimum number can beconfigured as a threshold number for comparison to the current count ofcounter C. The threshold may be configured by any suitable party ordevice. For example, the threshold may be set by a system operator, byan algorithm in the microcontroller 110, or by any other suitable party.The threshold may be configured based on a level of confidence that isdesired for the AC system. For example, a higher threshold may lead to ahigher number of positive indications of AC power loss before themicrocontroller 110 determines that a power loss condition exists.However, a higher threshold takes a greater amount of time to make thedetermination. A lower threshold takes a lower number of positiveindications of AC power loss before the microcontroller 110 determinesthat a power loss condition exists. However, a lower threshold mayresult in more false positive determinations, which may promptunnecessary system shutdowns or other undesirable actions. Thethresholds may be configured to achieve a balance between the desiresfor less false positives and faster responses.

If the counter C is below the threshold, then the method 200 proceeds toblock 250. In block 250, the counter C is increased by one unit, asshown by C=C+1. For example, if C is 1, then in block 250, C wouldincrease to 2.

In block 255, the microcontroller 110 pauses for a configured intervalof time. The interval may be adjusted dynamically to reflect theparticular system design goals. Shorter time intervals produce faster ACpower loss detection, while longer intervals will produce a morereliable AC power loss determination and minimize false positiveresults. For example, a shorter time interval allows less time for amomentary glitch to be resolved. Thus, a shorter time interval mayprovide a less reliable detection of a power loss. A longer timeinterval allows a more reliable AC power loss determination becausesystem glitches or other temporary interruptions may be resolved beforethe system declares a power interruption. The interval may be configuredby any suitable party or device. For example, the interval may be set bya system operator, by an algorithm in the microcontroller 110, or by anyother suitable party.

From block 255, the method 200 returns to block 225 where another pulseis applied to the power transistor 130.

Returning to block 245, if the counter C equals the threshold, then themethod 200 proceeds to block 260. In block 260, the microcontroller 110reports that the AC power loss is identified and a shutdown process isinitiated. The microcontroller 110 may report the AC power loss to anysuitable party or device. For example, the microcontroller 110 mayprovide an alarm or other notice to a power system operator. Themicrocontroller 110 may provide a signal to a power system operatingsystem that initiates a shutdown procedure. For example, the system maybegin a shutdown procedure based on the signal that allows criticalsystem to be shutdown in a manner that preserves stored data, closescritical applications, disengages potentially dangerous machinery, orperforms any other functions to ensure a safe and recoverable shutdownof the system. The microcontroller 110 may initiate a power backuproutine. The microcontroller 110 may perform any appropriate proceduresbased on the determination of the AC power loss.

The disclosed systems and methods recites AC line power loss detectionand active verification. Even if the AC line input voltage dipsmomentarily lower than a standard sine wave amplitude, the AC line powermay not be considered lost as long as it still has energy to drive aload. The momentary amplitude interruption (typically referred to as a“glitch”) can be caused by various actions, such as a large load beingstarted in the AC line. A determination that this glitch is anindication that power has been lost in the AC line would be a falsepositive indication. If this glitch happens near the AC wave zerocrossing, a voltage measurement will indicate a relatively long timeperiod that AC line amplitude is lower than a certain amount, such as 5Vor 10V. This glitch can be recognized as an AC line loss by aconventional system, and an unnecessary system shutdown may betriggered.

The technologies described herein can reduce the rate at which a falseAC loss alarming signal is generated, but at the same time detect anactual AC loss situation in a timely manner. These technologies insert amomentary load across the AC line and compares the AC line voltagebefore and after the extra load is applied. If the AC power is present,this extra loading will increase the AC loading current momentarily, butwill not affect the AC line voltage. However, if the AC power is lost,such loading will bring the AC line voltage lower, eventuallyapproaching zero.

Other Example Embodiments

FIG. 4 depicts a computing machine 2000 and a module 2050 in accordancewith certain example embodiments. The computing machine 2000 maycorrespond to any of the various computers, servers, mobile devices,embedded systems, or computing systems presented herein. The module 2050may comprise one or more hardware or software elements configured tofacilitate the computing machine 2000 in performing the various methodsand processing functions presented herein. The computing machine 2000may include various internal or attached components such as a processor2010, system bus 2020, system memory 2030, storage media 2040,input/output interface 2060, and a network interface 2070 forcommunicating with a network 2080.

The computing machine 2000 may be implemented as a conventional computersystem, an embedded controller, a laptop, a server, a mobile device, asmartphone, a set-top box, a kiosk, a vehicular information system, atelevision with one or more processors embedded therein and/or coupledthereto, a customized machine, any other hardware platform, or anycombination or multiplicity thereof. The computing machine 2000 may be adistributed system configured to function using multiple computingmachines interconnected via a data network or bus system.

The processor 2010 may be configured to execute code or instructions toperform the operations and functionality described herein, managerequest flow and address mappings, and to perform calculations andgenerate commands. The processor 2010 may be configured to monitor andcontrol the operation of the components in the computing machine 2000.The processor 2010 may be a general purpose processor, a processor core,a multiprocessor, a reconfigurable processor, a microcontroller, adigital signal processor (“DSP”), an application specific integratedcircuit (“ASIC”), a graphics processing unit (“GPU”), a fieldprogrammable gate array (“FPGA”), a programmable logic device (“PLD”), acontroller, a state machine, gated logic, discrete hardware components,any other processing unit, or any combination or multiplicity thereof.The processor 2010 may be a single processing unit, multiple processingunits, a single processing core, multiple processing cores, specialpurpose processing cores, co-processors, or any combination thereof.According to certain embodiments, the processor 2010 along with othercomponents of the computing machine 2000 may be a virtualized computingmachine executing within one or more other computing machines.

The system memory 2030 may include non-volatile memories such asread-only memory (“ROM”), programmable read-only memory (“PROM”),erasable programmable read-only memory (“EPROM”), flash memory, or anyother device capable of storing program instructions or data with orwithout applied power. The system memory 2030 may also include volatilememories such as random access memory (“RAM”), static random accessmemory (“SRAM”), dynamic random access memory (“DRAM”), and synchronousdynamic random access memory (“SDRAM”). Other types of RAM also may beused to implement the system memory 2030. The system memory 2030 may beimplemented using a single memory module or multiple memory modules.While the system memory 2030 is depicted as being part of the computingmachine 2000, one skilled in the art will recognize that the systemmemory 2030 may be separate from the computing machine 2000 withoutdeparting from the scope of the subject technology. It should also beappreciated that the system memory 2030 may include, or operate inconjunction with, a non-volatile storage device such as the storagemedia 2040.

The storage media 2040 may include a hard disk, a floppy disk, a compactdisc read only memory (“CD-ROM”), a digital versatile disc (“DVD”), aBlu-ray disc, a magnetic tape, a flash memory, other non-volatile memorydevice, a solid state drive (“SSD”), any magnetic storage device, anyoptical storage device, any electrical storage device, any semiconductorstorage device, any physical-based storage device, any other datastorage device, or any combination or multiplicity thereof. The storagemedia 2040 may store one or more operating systems, application programsand program modules such as module 2050, data, or any other information.The storage media 2040 may be part of, or connected to, the computingmachine 2000. The storage media 2040 may also be part of one or moreother computing machines that are in communication with the computingmachine 2000 such as servers, database servers, cloud storage, networkattached storage, and so forth.

The module 2050 may comprise one or more hardware or software elementsconfigured to facilitate the computing machine 2000 with performing thevarious methods and processing functions presented herein. The module2050 may include one or more sequences of instructions stored assoftware or firmware in association with the system memory 2030, thestorage media 2040, or both. The storage media 2040 may thereforerepresent examples of machine or computer readable media on whichinstructions or code may be stored for execution by the processor 2010.Machine or computer readable media may generally refer to any medium ormedia used to provide instructions to the processor 2010. Such machineor computer readable media associated with the module 2050 may comprisea computer software product. It should be appreciated that a computersoftware product comprising the module 2050 may also be associated withone or more processes or methods for delivering the module 2050 to thecomputing machine 2000 via the network 2080, any signal-bearing medium,or any other communication or delivery technology. The module 2050 mayalso comprise hardware circuits or information for configuring hardwarecircuits such as microcode or configuration information for an FPGA orother PLD.

The input/output (“I/O”) interface 2060 may be configured to couple toone or more external devices, to receive data from the one or moreexternal devices, and to send data to the one or more external devices.Such external devices along with the various internal devices may alsobe known as peripheral devices. The I/O interface 2060 may include bothelectrical and physical connections for operably coupling the variousperipheral devices to the computing machine 2000 or the processor 2010.The I/O interface 2060 may be configured to communicate data, addresses,and control signals between the peripheral devices, the computingmachine 2000, or the processor 2010. The I/O interface 2060 may beconfigured to implement any standard interface, such as small computersystem interface (“SCSI”), serial-attached SCSI (“SAS”), fiber channel,peripheral component interconnect (“PCI”), PCI express (PCIe), serialbus, parallel bus, advanced technology attached (“ATA”), serial ATA(“SATA”), universal serial bus (“USB”), Thunderbolt, FireWire, variousvideo buses, and the like. The I/O interface 2060 may be configured toimplement only one interface or bus technology. Alternatively, the I/Ointerface 2060 may be configured to implement multiple interfaces or bustechnologies. The I/O interface 2060 may be configured as part of, allof, or to operate in conjunction with, the system bus 2020. The I/Ointerface 2060 may include one or more buffers for bufferingtransmissions between one or more external devices, internal devices,the computing machine 2000, or the processor 2010.

The I/O interface 2060 may couple the computing machine 2000 to variousinput devices including mice, touch-screens, scanners, electronicdigitizers, sensors, receivers, touchpads, trackballs, cameras,microphones, keyboards, any other pointing devices, or any combinationsthereof. The I/O interface 2060 may couple the computing machine 2000 tovarious output devices including video displays, speakers, printers,projectors, tactile feedback devices, automation control, roboticcomponents, actuators, motors, fans, solenoids, valves, pumps,transmitters, signal emitters, lights, and so forth.

The computing machine 2000 may operate in a networked environment usinglogical connections through the network interface 2070 to one or moreother systems or computing machines across the network 2080. The network2080 may include wide area networks (WAN), local area networks (LAN),intranets, the Internet, wireless access networks, wired networks,mobile networks, telephone networks, optical networks, or combinationsthereof. The network 2080 may be packet switched, circuit switched, ofany topology, and may use any communication protocol. Communicationlinks within the network 2080 may involve various digital or an analogcommunication media such as fiber optic cables, free-space optics,waveguides, electrical conductors, wireless links, antennas,radio-frequency communications, and so forth.

The processor 2010 may be connected to the other elements of thecomputing machine 2000 or the various peripherals discussed hereinthrough the system bus 2020. It should be appreciated that the systembus 2020 may be within the processor 2010, outside the processor 2010,or both. According to some embodiments, any of the processor 2010, theother elements of the computing machine 2000, or the various peripheralsdiscussed herein may be integrated into a single device such as a systemon chip (“SOC”), system on package (“SOP”), or ASIC device.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity or option to control whetherprograms or features collect user information (e.g., information about auser's social network, social actions or activities, profession, auser's preferences, or a user's current location), or to control whetherand/or how to receive content from the content server that may be morerelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by a content server.

Embodiments may comprise a computer program that embodies the functionsdescribed and illustrated herein, wherein the computer program isimplemented in a computer system that comprises instructions stored in amachine-readable medium and a processor that executes the instructions.However, it should be apparent that there could be many different waysof implementing embodiments in computer programming, and the embodimentsshould not be construed as limited to any one set of computer programinstructions. Further, a skilled programmer would be able to write sucha computer program to implement an embodiment of the disclosedembodiments based on the appended flow charts and associated descriptionin the application text. Therefore, disclosure of a particular set ofprogram code instructions is not considered necessary for an adequateunderstanding of how to make and use embodiments. Further, those skilledin the art will appreciate that one or more aspects of embodimentsdescribed herein may be performed by hardware, software, or acombination thereof, as may be embodied in one or more computingsystems. Moreover, any reference to an act being performed by a computershould not be construed as being performed by a single computer as morethan one computer may perform the act.

The example embodiments described herein can be used with computerhardware and software that perform the methods and processing functionsdescribed herein. The systems, methods, and procedures described hereincan be embodied in a programmable computer, computer-executablesoftware, or digital circuitry. The software can be stored oncomputer-readable media. For example, computer-readable media caninclude a floppy disk, RAM, ROM, hard disk, removable media, flashmemory, memory stick, optical media, magneto-optical media, CD-ROM, etc.Digital circuitry can include integrated circuits, gate arrays, buildingblock logic, field programmable gate arrays (FPGA), etc.

The example systems, methods, and acts described in the embodimentspresented previously are illustrative, and, in alternative embodiments,certain acts can be performed in a different order, in parallel with oneanother, omitted entirely, and/or combined between different exampleembodiments, and/or certain additional acts can be performed, withoutdeparting from the scope and spirit of various embodiments. Accordingly,such alternative embodiments are included in the invention claimedherein.

Although specific embodiments have been described above in detail, thedescription is merely for purposes of illustration. It should beappreciated, therefore, that many aspects described above are notintended as required or essential elements unless explicitly statedotherwise. Modifications of, and equivalent components or actscorresponding to, the disclosed aspects of the example embodiments, inaddition to those described above, can be made by a person of ordinaryskill in the art, having the benefit of the present disclosure, withoutdeparting from the spirit and scope of embodiments defined in thefollowing claims, the scope of which is to be accorded the broadestinterpretation so as to encompass such modifications and equivalentstructures.

In example embodiments, the network computing devices and any othercomputing machines associated with the technology presented herein maybe any type of computing machine such as, but not limited to, thosediscussed in more detail with respect to FIG. 4. Furthermore, anymodules associated with any of these computing machines, such as modulesdescribed herein or any other modules (scripts, web content, software,firmware, or hardware) associated with the technology presented hereinmay by any of the modules discussed in more detail with respect to FIGS.1-3. The computing machines discussed herein may communicate with oneanother as well as other computer machines or communication systems overone or more networks. A network may include any type of data orcommunications network, including any of the network technologydiscussed with respect to FIG. 4.

What is claimed is:
 1. A method, comprising: receiving, by one or morecomputing devices, an input of an alternating current (“AC”) power froman AC power line; mixing, by the one or more computing devices, the ACpower input with a signal to create two heterodyne signals comprising alower frequency heterodyne signal and a higher frequency heterodynesignal; filtering, by the one or more computing devices, the lowerfrequency heterodyne signal and retaining the higher frequencyheterodyne signal as a heterodyned AC power input; generating, by theone or more computing devices, a sine wave that is synchronized with theheterodyned AC power input and of an equivalent amplitude to theheterodyned AC power input; comparing, by the one or more computingdevices, the heterodyned AC power input to the generated sine wave todetect when an instantaneous voltage level of the heterodyned AC powerinput is different than a corresponding voltage level on the generatedsine wave; upon determining that the instantaneous voltage level of theheterodyned AC power input is different than the corresponding value onthe generated sine wave, applying, by the one or more computing devices,a momentary load to the AC power line; determining, by the one or morecomputing devices, that a difference between a voltage of the AC powerline before application of the momentary load and a voltage of the ACpower line after application of the momentary load is greater than aspecified amount; and at least in part in response to determining thatthe difference between the voltage of the AC power line beforeapplication of the momentary load and the voltage of the AC power lineafter application of the momentary load is greater than the specifiedamount, determining, by the one or more computing devices, that the ACpower line has lost power.
 2. The method of claim 1, further comprising:upon determining that the difference between the voltage of the AC powerline before application of the momentary load and the voltage of the ACpower line after application of the momentary load is greater than thespecified amount, applying, by the one or more computing devices, amomentary load to the AC power line a second time; and determining, bythe one or more computing devices, that a difference between a voltageof the AC power line before the second application of the momentary loadand a voltage of the AC power line after the second application of themomentary load is also greater than the specified amount, wherein thedetermining that the AC power line has lost power is in response to bothdetermining that the difference between the voltage of the AC power linebefore the second application of the momentary load and the voltage ofthe AC power line after the second application of the momentary load isgreater than the specified amount and determining that the differencebetween the voltage of the AC power line before application of themomentary load and the voltage of the AC power line after application ofthe momentary load is greater than the specified amount.
 3. The methodof claim 2, further comprising repeating the steps of applying amomentary load and determining a difference until a configured specifiednumber of determinations that a difference between a voltage of the ACpower line before application of the momentary load and a voltage of theAC power line after application of the momentary load is greater thanthe specified amount has been reached.
 4. The method of claim 2, furthercomprising communicating, by the one or more computing devices, that theAC power line has lost power in response to determining that the ACpower line has lost power.
 5. The method of claim 2, further comprisinginitiating, by the one or more computing devices, a shutdown procedurein response to determining that the AC power line has lost power.
 6. Themethod of claim 1, further comprising communicating, by the one or morecomputing devices, that the AC power line has lost power in response todetermining that the AC power line has lost power.
 7. The method ofclaim 1, wherein the one or more computing devices is a microcontroller.8. The method of claim 1, wherein applying a momentary load to the ACpower line comprises pulsing a power transistor to conduct current fromthe AC power line through a load resistor.
 9. A tangible,non-transitory, computer-readable media having software encoded thereon,the software when executed by a processor operable to: mix a receivedconditioned alternating current (“AC”) power input from an AC power linewith a signal to create two heterodyne signals comprising a lowerfrequency heterodyne signal and a higher frequency heterodyne signal;filter the lower frequency heterodyne signal and retain the higherfrequency heterodyne signal as a heterodyned AC power input; generate asine wave that is synchronized with the heterodyned AC power input andof an equivalent amplitude to the heterodyned AC power input; comparethe heterodyned AC power input to the generated sine wave to detect whenan instantaneous voltage level of the heterodyned AC power input isdifferent than a corresponding voltage level on the generated sine wave;upon determining that the instantaneous voltage level of the heterodynedAC power input is different than the corresponding value on thegenerated sine wave, pulse a power transistor to conduct current fromthe AC power line through a load resistor; determine that a voltage ofthe AC power line after pulsing the power transistor is less than aspecified amount; and in response to determining that the differencebetween the voltage of the AC power line is less than the specifiedamount, determine that the AC power line has lost power.
 10. Thetangible, non-transitory, computer-readable media of claim 9, thesoftware when executed by the processor being further operable to: upondetermining that the voltage of the AC power line is less than thespecified amount, pulse the power transistor to conduct current from theAC power line through the load resistor a second time; and determinethat a voltage of the AC power line after pulsing the power transistor asecond time is less than the specified amount, wherein the determiningthat the AC power line has lost power is in response to both determiningthat the voltage of the AC power line after pulsing the power transistorthe second time is less than the specified amount and that a voltage ofthe AC power line after pulsing the power transistor is less than thespecified amount.
 11. The tangible, non-transitory, computer-readablemedia of claim 10, the software when executed by the processor beingfurther operable to repeat the steps of pulsing the power transistor anddetermining the voltage until a configured threshold number ofdeterminations that the voltage of the AC power line is less than thespecified amount has been reached.
 12. The tangible, non-transitory,computer-readable media of claim 10, the software when executed by theprocessor being further operable to communicate that the AC power linehas lost power in response to determining that the AC power line haslost power.
 13. The tangible, non-transitory, computer-readable media ofclaim 9, the software when executed by the processor being furtheroperable to communicate that the AC power line has lost power inresponse to determining that the AC power line has lost power.
 14. Asystem, comprising: a processor adapted to execute one or moreprocesses; and a memory configured to store a process executable by theprocessor, the process when executed operable to: mix a receivedalternating current (“AC”) power input from an AC power line with asignal to create two heterodyne signals comprising a lower frequencyheterodyne signal and a higher frequency heterodyne signal; filter thelower frequency heterodyne signal and retain the higher frequencyheterodyne signal as a heterodyned AC power input; generate a sine wavethat is synchronized with the heterodyned AC power input and of anequivalent amplitude to the heterodyned AC power input; compare theheterodyned AC power input to the generated sine wave to detect when aninstantaneous voltage level of the heterodyned AC power input isdifferent than a corresponding voltage level on the generated sine wave;upon determining that the instantaneous voltage level of the heterodynedAC power input is different than the corresponding value on thegenerated sine wave, pulse a power transistor to conduct current fromthe AC power line through a load resistor; determine after each of aplurality of pulses that a voltage of the AC power line after pulsingthe power transistor is less than a specified amount; and in response todetermining in at least two successive determinations that thedifference between the voltage of the AC power line is less than thespecified amount, determine that the AC power line has lost power. 15.The system of claim 14, the process when executed being further operableto communicate that the AC power line has lost power in response todetermining that the AC power line has lost power.
 16. The system ofclaim 14, the process when executed being further operable to initiate ashutdown procedure in response to determining that the AC power line haslost power.